﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DMC.Database;
using System.Windows.Forms;
using System.Data;

namespace prjLichSuHoSo_ThuaDat
{
    public class clsQuanLyBienDong
    {
        private string strConnection = "";// Khai báo biến nhận chuỗi kết nối Database
        private string strError;  /* Khai báo biến kiểm tra lỗi */
        private string strMaDangKyBienDong;
        private string strMaLoaiBienDong = "";
        private string strLoaiBienDong = "";
        private string strMaHoSoCapGCN;
        private string strMaThuaDat;
        private string strMaDonViHanhChinh;
        private string strMaThuaDatLS;
        private string strToBanDo = "";
        private string strSoThua = "";
        private string strTenChuSuDung = "";
        private string strSoDinhDanh = "";
        private string strNgayBienDong = "";
        private string strStartDate = "";
        private string strEndDate = "";
        private string strIsBanDo = "";


        //Khai báo thuộc tính nhận chuỗi kết nối Database
        public string Connection
        {
            set { strConnection = value; }
        }
        //Khai báo thuộc tính đọc lỗi
        public string Err
        {
            get { return strError; }
        }
        //Khai báo MaThuaDat
        public string MaThuaDat
        {
            get
            {
                return strMaThuaDat;
            }
            set
            {
                strMaThuaDat = value;
            }
        }
        //Khai báo Mã loại biến động
        public string MaLoaiBienDong
        {
            get
            {
                return strMaLoaiBienDong;
            }
            set
            {
                strMaLoaiBienDong = value;
            }
        }
        //Khai báo Loại biến động
        public string LoaiBienDong
        {
            get
            {
                return strLoaiBienDong;
            }
            set
            {
                strLoaiBienDong = value;
            }
        }
        //Khai báo Tờ bản đồ
        public string ToBanDo
        {
            get
            {
                return strToBanDo;
            }
            set
            {
                strToBanDo = value;
            }
        }
        //Khai báo số thửa
        public string SoThua
        {
            get
            {
                return strSoThua;
            }
            set
            {
                strSoThua = value;
            }
        }
        //Khai báo MaDonViHanhChinh
        public string MaDonViHanhChinh
        {
            get
            {
                return strMaDonViHanhChinh;
            }
            set
            {
                strMaDonViHanhChinh = value;
            }
        }
        //Khai báo có bản đồ hay không
        public string IsBanDo
        {
            get
            {
                return strIsBanDo;
            }
            set
            {
                strIsBanDo = value;
            }
        }
        //Khai báo Tên chủ
        public string TenChuSuDung
        {
            get
            {
                return strTenChuSuDung;
            }
            set
            {
                strTenChuSuDung = value;
            }
        }
        //Khai báo Số định danh
        public string SoDinhDanh
        {
            get
            {
                return strSoDinhDanh;
            }
            set
            {
                strSoDinhDanh = value;
            }
        }
        public string MaThuaDatLS
        {
            get
            {
                return strMaThuaDatLS;
            }
            set
            {
                strMaThuaDatLS = value;
            }
        }
        //Khai báo strStartDate
        public string StartDate
        {
            get
            {
                return strStartDate;
            }
            set
            {
                strStartDate = value;
            }
        }
        //Khai báo đến Ngày Biến Động
        public string EndDate
        {
            get
            {
                return strEndDate;
            }
            set
            {
                strEndDate = value;
            }
        }
        //Khai báo NgayBienDong
        public string NgayBienDong
        {
            get
            {
                return strNgayBienDong;
            }
            set
            {
                strNgayBienDong = value;
            }
        }
        //Khai bao thuoc tinh ung voi bien shFlag
        public string MaDangKyBienDong
        {
            get { return strMaDangKyBienDong; }
            set { strMaDangKyBienDong = value; }
        }
        //Khai bao thuoc tinh ung voi bien 
        public string MaHoSoCapGCN
        {
            get { return strMaHoSoCapGCN; }
            set { strMaHoSoCapGCN = value; }
        }
        public string GetData(string strStoreProcedureName, ref  System.Data.DataTable dtRecords)
        {
            try
            {
                /* Khai báo đối tượng clsDatabase */
                clsDatabase Database = new clsDatabase();
                /* Nhận chuỗi kết nối Database */
                Database.Connection = strConnection;
                //Nếu kết nỗi thành công
                if (Database.OpenConnection())
                {
                    /* khai báo mảng tham số */
                    string[] strParas = { "@MaThuaDat", "@MaDonViHanhChinh", "@MaThuaDatLS" };
                    /* khai báo mảng giá trị */
                    string[] strValues = { strMaThuaDat, strMaDonViHanhChinh, strMaThuaDatLS };
                    ///* Kiểm tra tính hợp lệ của dữ liệu trước khi thực thi câu lệnh SQL */
                    //if (strParas.Length != strValues.Length)
                    //{
                    //    System.Windows.Forms.MessageBox.Show("Dữ liệu truyền vào chưa hợp lệ", "DMCLand", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    //    return "Dữ liệu truyền vào chưa hợp lệ";
                    //}
                    Database.getValue(ref dtRecords, strStoreProcedureName, strParas, strValues);
                    Database.CloseConnection();
                    strError = "";
                }
            }
            catch (Exception ex)
            {
                strError = ex.ToString();

            }
            return strError;
        }
        //public string GetThuaDatLichSu()
        //{
        //    string kq = "";
        //    try
        //    {
        //        /* khai báo mảng tham số */
        //        string[] strParas = { "@MaThuaDat", "@MaDonViHanhChinh" };
        //        /* khai báo mảng giá trị */
        //        string[] strValues = { strMaThuaDat, strMaDonViHanhChinh };
        //        /* Khai bao va khoi tao doi tuong thao tac voi DataBase */
        //        clsDatabase DataBase = new clsDatabase();
        //        // Nhan ve chuoi ket noi
        //        DataBase.Connection = strConnection;
        //        if (DataBase.OpenConnection() == true)
        //        {
        //            if (strParas.Length != strValues.Length)
        //            {
        //                System.Windows.Forms.MessageBox.Show("Dữ liệu truyền vào chưa hợp lệ", "DMCLand", MessageBoxButtons.OK, MessageBoxIcon.Warning);

        //            }
        //            kq = DataBase.ExecuteOutPut("spGetThuaDatLichSu", strParas, strValues, strMaThuaDatLS);
        //            DataBase.CloseConnection();
        //        }
        //        return kq;
        //    }
        //    catch (Exception ex)
        //    {
        //        strError = ex.Message;
        //        MessageBox.Show(" Không load được" + System.Environment.NewLine + " Lỗi: " + ex.Message);// ,   MessageBoxIcon.Information , "DMCLand");                
        //        return kq;
        //    }
        //}
        //Phương thức tìm kiếm thông tin biến động
        public DataTable TimKiemThongTinBienDong()
        {
            DataTable dt = new DataTable();
            try
            {
                /* khai báo mảng tham số */
                string[] strParas = { "@MaDonViHanhChinh", "@TenChuSuDung", "@MaLoaiBienDong", "@LoaiBienDong", "@ToBanDo", "@SoThua", "@SoDinhDanh", "@StartDate", "@EndDate", "@IsCoBanDo" };
                /* khai báo mảng giá trị */
                string[] strValues = { strMaDonViHanhChinh, strTenChuSuDung, strMaLoaiBienDong, strLoaiBienDong, strToBanDo, strSoThua, strSoDinhDanh, strStartDate, strEndDate, strIsBanDo };
                /* Khai bao va khoi tao doi tuong thao tac voi DataBase */
                clsDatabase DataBase = new clsDatabase();
                // Nhan ve chuoi ket noi
                DataBase.Connection = strConnection;
                if (DataBase.OpenConnection() == true)
                {
                    if (strParas.Length != strValues.Length)
                    {
                        System.Windows.Forms.MessageBox.Show("Dữ liệu truyền vào chưa hợp lệ", "DMCLand", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                    }
                    DataBase.getValue(ref dt, "spTimThongTinBienDong", strParas, strValues);
                    DataBase.CloseConnection();
                }
                return dt;
            }
            catch (Exception ex)
            {
                //strError = ex.Message;                
                MessageBox.Show(" Quản lý biến động " + System.Environment.NewLine + " Lỗi: " + ex.Message);// ,   MessageBoxIcon.Information , "DMCLand");
                return dt;
            }
        }
        //Phương thức tìm kiếm thông tin biến động cho phép tùy chọn tìm các hồ sơ của các thửa trong lịch sử hoàn toàn hay ko
        public DataTable TimKiemThongTinBienDongNew(string ischeckLichSu)
        {
            DataTable dt = new DataTable();
            try
            {
                /* khai báo mảng tham số */
                string[] strParas = { "@MaDonViHanhChinh", "@TenChuSuDung", "@MaLoaiBienDong", "@LoaiBienDong", "@ToBanDo", "@SoThua", "@SoDinhDanh", "@StartDate", "@EndDate", "@IsCoBanDo" };
                /* khai báo mảng giá trị */
                string[] strValues = { strMaDonViHanhChinh, strTenChuSuDung, strMaLoaiBienDong, strLoaiBienDong, strToBanDo, strSoThua, strSoDinhDanh, strStartDate, strEndDate, strIsBanDo };
                /* Khai bao va khoi tao doi tuong thao tac voi DataBase */
                clsDatabase DataBase = new clsDatabase();
                // Nhan ve chuoi ket noi
                DataBase.Connection = strConnection;
                if (DataBase.OpenConnection() == true)
                {
                    if (strParas.Length != strValues.Length)
                    {
                        System.Windows.Forms.MessageBox.Show("Dữ liệu truyền vào chưa hợp lệ", "DMCLand", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                    }
                    if (ischeckLichSu == "1")
                    {
                        DataBase.getValue(ref dt, "spTimThongTinHSTrongBangLichSu", strParas, strValues);
                    }
                    else
                    {
                        DataBase.getValue(ref dt, "spTimThongTinBienDong", strParas, strValues);
                    }
                    DataBase.CloseConnection();
                }
                return dt;
            }
            catch (Exception ex)
            {
                //strError = ex.Message;                
                MessageBox.Show(" Quản lý biến động " + System.Environment.NewLine + " Lỗi: " + ex.Message);// ,   MessageBoxIcon.Information , "DMCLand");
                return dt;
            }
        }
        public string Execute(string strStoreProcedureName, ref  string strRecords)
        {
            try
            {
                /* Khai báo đối tượng clsDatabase */
                clsDatabase Database = new clsDatabase();
                /* Nhận chuỗi kết nối Database */
                Database.Connection = strConnection;
                /* Nếu kết nối thành công */
                if (Database.OpenConnection())
                {
                    string[] paraThuaDat = { "@MaThuaDat", "@MaDonViHanhChinh" };
                    /* Khai báo mảng giá trị */
                    string[] ValueThuaDat = { strMaThuaDat, strMaDonViHanhChinh };
                    /* Kiểm tra tính hợp lệ của dữ liệu trước khi thực thi câu lệnh SQL */
                    if (paraThuaDat.Length != ValueThuaDat.Length)
                    {
                        System.Windows.Forms.MessageBox.Show("Dữ liệu truyền vào chưa hợp lệ", "DMCLand", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return "Dữ liệu truyền vào chưa hợp lệ";
                    }
                    Database.ExecuteSP(strStoreProcedureName, paraThuaDat, ValueThuaDat, ref  strRecords);
                    strError = Database.Err;
                    Database.CloseConnection();
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(" Lỗi khi thực thi đăng ký biến động ");// ,   MessageBoxIcon.Information , "DMCLand");
            }
            return strError;
        }
        public string GetThongTinThuaDatByNgayBienDong(ref DataTable dt)
        {
            try
            {
                /* Khai báo đối tượng clsDatabase */
                clsDatabase Database = new clsDatabase();
                /* Nhận chuỗi kết nối Database */
                Database.Connection = strConnection;
                /* Nếu kết nối thành công */
                if (Database.OpenConnection())
                {
                    string[] paraThuaDat = { "@MaThuaDat", "@MaDonViHanhChinh" };
                    /* Khai báo mảng giá trị */
                    string[] ValueThuaDat = { strMaThuaDat, strMaDonViHanhChinh };
                    /* Kiểm tra tính hợp lệ của dữ liệu trước khi thực thi câu lệnh SQL */
                    if (paraThuaDat.Length != ValueThuaDat.Length)
                    {
                        System.Windows.Forms.MessageBox.Show("Dữ liệu truyền vào chưa hợp lệ", "DMCLand", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return "Dữ liệu truyền vào chưa hợp lệ";
                    }
                    Database.getValue(ref dt, "spGetThuaDatLSNew", paraThuaDat, ValueThuaDat);
                    Database.CloseConnection();
                    strError = "";
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(" Lỗi khi thực thi đăng ký biến động ");// ,   MessageBoxIcon.Information , "DMCLand");
            }
            return strError;
        }
        public string GetAllNgayBienDong(ref DataTable dt)
        {
            try
            {
                /* Khai báo đối tượng clsDatabase */
                clsDatabase Database = new clsDatabase();
                /* Nhận chuỗi kết nối Database */
                Database.Connection = strConnection;
                /* Nếu kết nối thành công */
                if (Database.OpenConnection())
                {
                    string[] paraThuaDat = { "@MaDonViHanhChinh" };
                    /* Khai báo mảng giá trị */
                    string[] ValueThuaDat = { strMaDonViHanhChinh };
                    /* Kiểm tra tính hợp lệ của dữ liệu trước khi thực thi câu lệnh SQL */
                    if (paraThuaDat.Length != ValueThuaDat.Length)
                    {
                        System.Windows.Forms.MessageBox.Show("Dữ liệu truyền vào chưa hợp lệ", "DMCLand", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return "Dữ liệu truyền vào chưa hợp lệ";
                    }
                    Database.getValue(ref dt, "spGetNgayBienDong", paraThuaDat, ValueThuaDat);
                    Database.CloseConnection();
                    strError = "";
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(" Lỗi khi thực thi đăng ký biến động ");// ,   MessageBoxIcon.Information , "DMCLand");
            }
            return strError;
        }
        public string GetMaThuaDatByNgayBienDong(ref DataTable dt)
        {
            try
            {
                /* Khai báo đối tượng clsDatabase */
                clsDatabase Database = new clsDatabase();
                /* Nhận chuỗi kết nối Database */
                Database.Connection = strConnection;
                /* Nếu kết nối thành công */
                if (Database.OpenConnection())
                {
                    string[] paraThuaDat = { "@MaDonViHanhChinh", "@NgayBienDong" };
                    /* Khai báo mảng giá trị */
                    string[] ValueThuaDat = { strMaDonViHanhChinh, strNgayBienDong };
                    /* Kiểm tra tính hợp lệ của dữ liệu trước khi thực thi câu lệnh SQL */
                    if (paraThuaDat.Length != ValueThuaDat.Length)
                    {
                        System.Windows.Forms.MessageBox.Show("Dữ liệu truyền vào chưa hợp lệ", "DMCLand", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return "Dữ liệu truyền vào chưa hợp lệ";
                    }
                    Database.getValue(ref dt, "spGetSplitDanhSachMaSoThuaDatCon", paraThuaDat, ValueThuaDat);
                    Database.CloseConnection();
                    strError = "";
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(" Lỗi khi thực thi đăng ký biến động ");// ,   MessageBoxIcon.Information , "DMCLand");
            }
            return strError;
        }
        public string GetThongTinThuaDatByMaSoThuaDat(ref DataTable dt)
        {
            try
            {
                /* Khai báo đối tượng clsDatabase */
                clsDatabase Database = new clsDatabase();
                /* Nhận chuỗi kết nối Database */
                Database.Connection = strConnection;
                /* Nếu kết nối thành công */
                if (Database.OpenConnection())
                {
                    string[] paraThuaDat = { "@MaDonViHanhChinh", "@NgayBienDong" };
                    /* Khai báo mảng giá trị */
                    string[] ValueThuaDat = { strMaDonViHanhChinh, strNgayBienDong };
                    /* Kiểm tra tính hợp lệ của dữ liệu trước khi thực thi câu lệnh SQL */
                    if (paraThuaDat.Length != ValueThuaDat.Length)
                    {
                        System.Windows.Forms.MessageBox.Show("Dữ liệu truyền vào chưa hợp lệ", "DMCLand", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return "Dữ liệu truyền vào chưa hợp lệ";
                    }
                    Database.getValue(ref dt, "spGetSplitDanhSachMaSoThuaDatCon", paraThuaDat, ValueThuaDat);
                    Database.CloseConnection();
                    strError = "";
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
                MessageBox.Show(" Lỗi khi thực thi đăng ký biến động ");// ,   MessageBoxIcon.Information , "DMCLand");
            }
            return strError;
        }
        public DataTable SelectMaXa()
        {
            DataTable dt = new DataTable();
            string strError = "";
            try
            {
                string[] paraMaXa = { "@MaDonViHanhChinh" };
                string[] Values = { strMaDonViHanhChinh };
                dt = TimKiemHoSoThuaDat("sp_SelectMaXaByMaDVHC", Values, paraMaXa);
            }
            catch (Exception ex)
            {
                strError = ex.Message;
            }
            return dt;
        }

        public DataTable TimKiemHoSoThuaDat(string sp, string[] Values, string[] paras)
        {
            string strError = "";
            DataTable MyTable = new DataTable();
            try
            {
                //Khoi tao doi tuong DMC.clsDatabase
                clsDatabase Database = new clsDatabase();
                Database.Connection = strConnection;
                if (Database.OpenConnection())
                {
                    //Chắc chắn rằng mảng giá trị truyền vào tương đương với mảng tham biến
                    if ((paras.Length != Values.Length))
                    {
                        return null;
                    }
                    //Gọi phương thức GetValue của đối tượng clsDatabase
                    Database.getValue(ref MyTable, sp, paras, Values);
                    Database.CloseConnection();
                }
            }
            catch (Exception ex)
            {
                strError = ex.Message;
            }
            return MyTable;
        }
    }
}
